{% set options = namespace(value='') %}
{% if openvpn_option is vyos_defined %}
{%     for option in openvpn_option %}
{#         Remove the '--' prefix from variable if it is presented #}
{%         if option.startswith('--') %}
{%             set option = option.split('--', maxsplit=1)[1] %}
{%         endif %}
{#         Workaround to pass '--push' options properly. Previously openvpn accepted this option without values in double-quotes #}
{#         But now it stopped doing this, so we need to add them for compatibility #}
{#         HOWEVER! This is a raw option and we do not promise that this or any other trick will work for all the cases. #}
{#         Using 'openvpn-option' you take all responsibility for compatibility for yourself. #}
{%         if option.startswith('push') and not (option.startswith('push "') and option.endswith('"')) %}
{%             set option = 'push \"%s\"' | format(option.split('push ', maxsplit=1)[1]) %}
{%         endif %}
{%         set options.value = options.value ~ ' --' ~ option %}
{%     endfor %}
{% endif %}
[Service]
ExecStart=
ExecStart=/usr/sbin/openvpn --daemon openvpn-%i --config %i.conf --status %i.status 30 --writepid %i.pid {{ options.value }}

